package com.cskaoyan.javase.array._2memory;

/**
 * 定义两个数组：
 * 静态初始化一个数组，输出数组名，元素取值，长度
 * 然后声明第二个数组，把第一个数组的地址赋值给第二个数组。
 * 输出第二个数组的数组名，元素取值，长度
 * 然后给第二个数组赋值，再次输出两个数组的名及元素
 *
 * 结论:
 * 把一个引用赋值给另外一个引用,就是把地址赋值了,这两个引用就指向了同一个对象
 * 这时这两个引用操作的就是一个对象,会互相影响
 *
 * @since 11:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo6 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        int[] arr2 = arr;
        // double[] arr3 = arr;
        System.out.println(arr);
        System.out.println(arr2);
        arr2[0] = 666;
        System.out.println(arr[0]);

        int[] arr3 = new int[2];
        System.out.println(arr3);
        /*
            引用使用比较运算符连接就是比较引用中的地址是否相同
            也就是比较引用是否指向同一个对象
            只有当两个引用完全指向同一个对象时,才会返回true
            否者都会返回false
            并且比较运算符连接引用,这两个引用必须数据类型一样
         */
        System.out.println(arr == arr2);
        System.out.println(arr == arr3);
        double[] arr4 = new double[3];
        // System.out.println(arr == arr4);
    }
}
